/**
 * 2017年7月7日
 */
package jdk.jdk18;

/**
 * @author Alex
 *
 */
public class HashTest {
	static final int hash(Object key) {
	        int h;
	        h = key.hashCode();
	        System.out.printf("%x,%x\n",h,h^(h>>>16));
	        return (key == null) ? 0 : h ^ (h >>> 16);
	}
	public static void main(String[] args) {
		int h = hash("hello");
//		当length总是2的n次方时，h& (length-1)运算等价于对length取模，也就是h%length，但是&比%具有更高的效率。
		int length = 32;
		System.out.println( (h & (length-1)) == h % length);
		
		
	}
}
